import axios from "axios";

var instance = axios.create();
instance.defaults.headers.common["Authorization"] =
  window.localStorage.getItem("token") || "";
// 覆写库的超时默认值
// 现在，在超时前，所有请求都会等待 2.5 秒
instance.defaults.timeout = 2500;
// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);
// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    if (error.response) {
      switch (error.response.status) {
        case 400:
          console.log("请求错误");
          break;
        case 401:
          console.log("未授权，请登录");
          break;
        case 403:
          console.log("拒绝访问");
          break;
        case 404:
          window.location.href = "/404";
          console.log("请求地址出错");
          break;
        case 408:
          console.log("请求超时");
          break;
        case 500:
          console.log("服务器内部错误");
          break;
        case 501:
          console.log("服务未实现");
          break;
        case 502:
          console.log("网关错误");
          break;
        case 503:
          console.log("服务不可用");
          break;
        case 504:
          console.log("网关超时");
          break;
        case 505:
          console.log("HTTP版本不受支持");
          break;
        default:
          console.log("错误：", error.response.data.message);
          break;
      }
    }
    return Promise.reject(error);
  }
);

export default instance;
